package tema12.ejercicios.ejercicioDeClase.ejercicio13;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

import tema12.ejercicios.ejercicioDeClase.ejercicio06.ITraductor;

public class TraductoresFactory {
	// Te guardas el adaptador con la interfaz para ponder crear el que quieras
	private ITraductor traductorAdapter;
	private static TraductoresFactory traductoresFactory;
	
	private TraductoresFactory() {
	}
	
	public static TraductoresFactory getTraductoresFactory(){
		if(traductoresFactory == null){
			traductoresFactory = new TraductoresFactory();
		}
		return traductoresFactory;
	}
	
	public ITraductor getTraductorAdapter() throws InstantiationException,
			IllegalAccessException, ClassNotFoundException {

		if (traductorAdapter == null) {
			//Abrir ubicacion archivo
			String rutaDoc = "src/tema12/ejercicios/ejercicioDeClase/ejercicio11/dat/idioma.ini";
			FileReader fr;
			BufferedReader br = null; 
			
			
			try {
				fr = new FileReader(rutaDoc);
				br = new BufferedReader(fr);

			} catch (FileNotFoundException e1) {
			System.out.println("Error al abrir el archivo");
			}
			
			//Leer la linea que dice que adaptador se va a utilizar
			String nombreClase = null;
			try {
				nombreClase = br.readLine();
			} catch (IOException e) {
				System.out.println("Error al leer el adaptador en el fichero de texto");
			}
			
			//Creamos el adaptador
			traductorAdapter = (ITraductor) (Class.forName(nombreClase).newInstance());
		}

		return traductorAdapter;
	}
}
